Complex JSON Structures পার্স করা এবং প্রক্রিয়াজাত করা

Nested JSON এবং Complex Structures - জেসন (JSON) - Java Technologies

298

জেএসপি (JSP) বা Java অ্যাপ্লিকেশনে Complex JSON Structures যেমন অ্যারে এবং অবজেক্টের মধ্যে নেস্টেড (nested) ডেটা পার্স করা এবং প্রক্রিয়াজাত করা খুবই গুরুত্বপূর্ণ। JSON ডেটা সাধারণত সহজ স্ট্রিং এবং নাম্বারের থেকে বেশি জটিল হতে পারে, যেখানে অবজেক্ট এবং অ্যারের কম্বিনেশন থাকে।

এই প্রক্রিয়াটি করার জন্য সাধারণত Jackson বা Gson লাইব্রেরি ব্যবহার করা হয়। আমরা এখানে Jackson ব্যবহার করে Complex JSON Structures পার্স করার এবং প্রক্রিয়াজাত করার উদাহরণ দেখাব।

Complex JSON Structures এর উদাহরণ

ধরা যাক, আমাদের কাছে একটি JSON ডেটা আছে যা অ্যারে, অবজেক্ট এবং নাম্বারসহ বিভিন্ন ধরনের ডেটা ধারণ করে।

{
  "name": "John",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "zip": "10001"
  },
  "phoneNumbers": [
    {
      "type": "mobile",
      "number": "123-456-7890"
    },
    {
      "type": "home",
      "number": "987-654-3210"
    }
  ]
}

এই JSON ডেটাতে একটি অবজেক্ট address, এবং একটি অ্যারে phoneNumbers রয়েছে, যা আরও দুটি অবজেক্ট ধারণ করে।

Jackson ব্যবহার করে Complex JSON Structures পার্স করা


স্টেপ ১: Jackson লাইব্রেরি যোগ করা

প্রথমে আপনার Maven প্রকল্পে Jackson লাইব্রেরি যোগ করুন:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
</dependency>

স্টেপ ২: Java ক্লাস তৈরি করা

এখন আমরা JSON ডেটাকে Java অবজেক্টে কনভার্ট করার জন্য Java ক্লাস তৈরি করব।

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

class Address {
    private String street;
    private String city;
    private String zip;

    // Getters and Setters
    public String getStreet() { return street; }
    public void setStreet(String street) { this.street = street; }

    public String getCity() { return city; }
    public void setCity(String city) { this.city = city; }

    public String getZip() { return zip; }
    public void setZip(String zip) { this.zip = zip; }
}

class PhoneNumber {
    private String type;
    private String number;

    // Getters and Setters
    public String getType() { return type; }
    public void setType(String type) { this.type = type; }

    public String getNumber() { return number; }
    public void setNumber(String number) { this.number = number; }
}

class Person {
    private String name;
    private int age;
    private Address address;
    
    @JsonProperty("phoneNumbers")  // To handle the JSON array field
    private List<PhoneNumber> phoneNumbers;

    // Getters and Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }

    public Address getAddress() { return address; }
    public void setAddress(Address address) { this.address = address; }

    public List<PhoneNumber> getPhoneNumbers() { return phoneNumbers; }
    public void setPhoneNumbers(List<PhoneNumber> phoneNumbers) { this.phoneNumbers = phoneNumbers; }
}

এখানে:

  • Address ক্লাসের মধ্যে street, city, এবং zip আছে, যা JSON অবজেক্ট address এর মান প্রতিনিধিত্ব করে।
  • PhoneNumber ক্লাসটি JSON অ্যারের প্রতিটি অবজেক্টের জন্য তৈরি করা হয়েছে (যেখানে type এবং number ফিল্ড আছে)।
  • Person ক্লাসে name, age, address, এবং phoneNumbers রয়েছে। phoneNumbers হল একটি List

স্টেপ ৩: JSON ডেটা পার্স করা (Deserialization)

এখন আমরা JSON ডেটা Java অবজেক্টে কনভার্ট (পার্স) করব।

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

public class JacksonComplexJsonExample {
    public static void main(String[] args) throws IOException {
        String jsonString = "{\n" +
                "  \"name\": \"John\",\n" +
                "  \"age\": 30,\n" +
                "  \"address\": {\n" +
                "    \"street\": \"123 Main St\",\n" +
                "    \"city\": \"New York\",\n" +
                "    \"zip\": \"10001\"\n" +
                "  },\n" +
                "  \"phoneNumbers\": [\n" +
                "    {\n" +
                "      \"type\": \"mobile\",\n" +
                "      \"number\": \"123-456-7890\"\n" +
                "    },\n" +
                "    {\n" +
                "      \"type\": \"home\",\n" +
                "      \"number\": \"987-654-3210\"\n" +
                "    }\n" +
                "  ]\n" +
                "}";

        ObjectMapper objectMapper = new ObjectMapper();

        // JSON to Java object
        Person person = objectMapper.readValue(jsonString, Person.class);

        // Printing parsed data
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("Street: " + person.getAddress().getStreet());
        System.out.println("Phone Numbers:");
        for (PhoneNumber phoneNumber : person.getPhoneNumbers()) {
            System.out.println("  Type: " + phoneNumber.getType() + ", Number: " + phoneNumber.getNumber());
        }
    }
}

এখানে:

  • ObjectMapper এর মাধ্যমে JSON স্ট্রিংটিকে Person অবজেক্টে রূপান্তর করা হচ্ছে।
  • person.getName(), person.getAge(), person.getAddress().getStreet(), এবং person.getPhoneNumbers() ব্যবহার করে পার্স করা ডেটা অ্যাক্সেস করা হচ্ছে।

আউটপুট:

Name: John
Age: 30
Street: 123 Main St
Phone Numbers:
  Type: mobile, Number: 123-456-7890
  Type: home, Number: 987-654-3210

JSON ডেটা প্রক্রিয়াজাত করা


পার্স করার পর, আপনি JSON ডেটার যেকোনো অংশে প্রক্রিয়াকরণ করতে পারেন, যেমন:

  1. নতুন ডেটা যোগ করা: আপনি JSON অবজেক্টে নতুন তথ্য যুক্ত করতে পারেন।
  2. ডেটা পরিবর্তন করা: আপনি পার্স করা ডেটা পরিবর্তন করতে পারেন (যেমন, নাম বা ঠিকানা আপডেট করা)।
  3. ফিল্টারিং: আপনি JSON অবজেক্টে ফিল্টার প্রয়োগ করে নির্দিষ্ট ডেটা বের করতে পারেন।

উদাহরণস্বরূপ, আপনি যদি ফোন নাম্বার পরিবর্তন করতে চান, তাহলে আপনি person.getPhoneNumbers() এর মাধ্যমে ফোন নম্বর পরিবর্তন করতে পারেন।


সারাংশ


Complex JSON Structures পার্স এবং প্রক্রিয়াজাত করার জন্য Jackson একটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি। এখানে, JSON ডেটার মধ্যে অবজেক্ট এবং অ্যারে থাকলে, Jackson এর মাধ্যমে সহজেই পার্স এবং প্রক্রিয়াজাত করা সম্ভব। JSON ডেটা পার্স করার জন্য Java ক্লাস তৈরি করতে হয় এবং তারপর ObjectMapper ব্যবহার করে JSON কে Java অবজেক্টে রূপান্তর করতে হয়। JSON ডেটা প্রক্রিয়াজাত করা Java কোডের মাধ্যমে বিভিন্ন কার্যক্রম করা যায়, যেমন ডেটা পরিবর্তন বা নতুন তথ্য যুক্ত করা।

Content added By
Promotion

Are you sure to start over?

Loading...